﻿@using System.Collections.Specialized
@using KPIS.GERP.Models.Class



@model List<KPIS.GERP.Models.SYS.ApprovalTask>

@{
	ViewBag.Title = "งานขออนุมัติค้างในระบบ";
	ViewBag.Descr = "เป็นคำขออนุมัติที่อยู่ระหว่างขั้นตอนการอนุมัติ ท่านสามารถดูสถานะปัจจุบันได้ว่ากำลังค้างที่ขั้นตอนไหน";
}

@using (Html.BeginForm("DeleteAll", "ApprovalTask", FormMethod.Post, new {@id="form"}))
{
    @Html.AntiForgeryToken()
    <div class="row-fluid">
        <div class="block-button-menu-above">
            @Html.ButtonDeleteAll()
        </div>
        @Html.ValidationSummary(true, "", new { @class = "alert alert-error" })
        <div class="row-fluid">
            <div class="table-header span12">
				<div class="span10">
					@ViewBag.Title
				</div>
				@Html.Partial("_ExportButton")
            </div>
        </div>

        <table id="table" class="table table-striped table-bordered table-hover" aria-describedby="table_info">
            <thead>
                <tr>
                    <th class="center" style="width:50px;">
						<!-- Check box delete multiple records column-->
                        <label>
                            <input type="checkbox" />
                            <span class="lbl"></span>
                        </label>
                    </th>
					<th>
						#
                    </th>
					<th>
						เลขที่อ้างอิง
                    </th>
					<th>หัวข้อคำขอ
                    </th>
					<th>ผู้ขอ
                    </th>
					<th>สร้างเมื่อ
                    </th>
					<th>จบเมื่อ
                    </th>
					<th>สถานะ
                    </th>
					@*<th>ขั้นตอนที่
                    </th>
					<th>กฎอนุมัติ
                    </th>
					<th>สิ้นสุด
                    </th>
					<th>ผู้อนุมัติ
                    </th>
					<th>เชื่อมโยง
                    </th>*@
					<th>
						รายละเอียด
					</th>  
				</tr>
			</thead>
			<tbody> 
				@foreach(var m in Model??new List<ApprovalTask>())
				{ 
					<tr>
                        <td class="center">
                            <!-- Check box all for delete multiple records -->
                            <label>
                                <input type="checkbox" name="deleteIds" value="@(m.ApprovalTaskId)" />
                                <span class="lbl"></span>
                            </label>
                        </td>
                        <td>@m.ApprovalTaskId  </td> 
                        <td>@m.Code  </td> 
						<td>@(m.OriginalApproveProcess.Name)@*: @m.Title*@</td>
						<td>@(m.OriginalApplyToEmployee == null ? "-" : m.OriginalApplyToEmployee.FullName)</td>
						<td>@m.CreatedWhen.Value.ToShortDateString()</td>
						<td>@(m.ApprovalTaskStatus == ApprovalTaskStatus.Locked && m.UpdatedWhen.HasValue ?  m.UpdatedWhen.Value.ToShortDateString() : "")</td>
                        <td>
                            @{
                                string taskStatusText = "";
                                switch(m.ApprovalTaskStatus)
                                {
                                    case ApprovalTaskStatus.Initial:
                                        taskStatusText = ("กำลังเริ่มต้น");
                                        break;
                                    case ApprovalTaskStatus.WaitCommanderApprove:
                                        taskStatusText = ("รออนุมัติ");
                                        break;
                                    case ApprovalTaskStatus.Failed:
                                        taskStatusText = ("ล้มเหลว");
                                        break;
                                    case ApprovalTaskStatus.Freeze:
                                        taskStatusText = ("ถูกสั่งค้างไว้ในระบบ");
                                        break;
                                    case ApprovalTaskStatus.Locked: 
                                        taskStatusText = ("จบการทำงาน");
                                        break;
                                } 
                            }
                            @Html.Raw(taskStatusText)
                        </td>
						@*<td>@(m.CurrentRuleApprove == null ? "-" : (m.CurrentRuleApprove.step.HasValue ? "" + m.CurrentRuleApprove.step : "-") + " จาก " + m.RuleApproves.Count)</td>
						<td>@(m.CurrentRuleApprove == null ? "-" : m.CurrentRuleApprove.rule_approve_type.rule_approve_type_name)</td>
						<td>@(m.Completed ? "สิ้นสุดแล้ว" : "อยู่ระหว่างพิจารณา")</td>
						<td>
							@if (m.CurrentRuleApprove != null)
							{
								int i = 1;
								@m.ApproverEmployees.Aggregate("", (current, em) => current + Html.Raw("" + (i++) + ". " + em.full_name ))
							} else
							{
								@("-")
							}
						</td>
						<td>
                            
							@{
								var ruleApproveCustomButtons = m.CurrentRuleApprove == null ||
																(m.CurrentRuleApprove != null && m.custom_buttons == null) 
																	? new List<rule_approve_custom_button>()
																	: m.custom_buttons;
							}
							@if (ruleApproveCustomButtons != null)
							{
								foreach(var cb in ruleApproveCustomButtons)
								{
									<a href="JavaScript:newPopup('@cb.navigate_url');" title="@cb.rule_approve_custom_name">
										@cb.rule_approve_custom_name  
									</a>
									@Html.Raw("&nbsp;")
								}
							}
							else
							{
								@Html.Raw("-")
							}
						</td>*@
						<td>
							@Html.ActionLink("ดูข้อมูล", "Details", new {approvalTaskSeq = m.ApprovalTaskId})
						</td>

					</tr> 
				} 
			</tbody>
		</table> 
    </div>
}

<style type="text/css">
    .content {
        padding: 5px 10px;
        background-color:#fafafa; 
    }
    .heading {
        margin: 1px;
        color: #0366a5;
        padding: 3px 10px;
        cursor: pointer;
        position: relative;
        background-color:#d4e7ea;
    }
</style>

@section scripts {
<script type="text/javascript">
	$(function () {
		$('#table').dataTable({
			"aoColumns": [
                { "bSortable": false },
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                { "bSortable": false }
			]
		});

		$('table th input:checkbox').on('click', function () {
			var that = this;
			$(this).closest('table').find('tr > td:first-child input:checkbox')
			.each(function () {
				this.checked = that.checked;
				$(this).closest('tr').toggleClass('selected');
			});

		});

		$('[data-rel=tooltip]').tooltip();

		$("#form").submit(function (e) {
			e.preventDefault();
			var currentForm = this;
			bootbox.confirm("คุณแน่ใจหรือไม่", function (c) {
				if (c) {
					$.ajax({
						url: "@Url.Action("DeleteAll")",
			    		type: "post",
			    		dataType: "json",
			    		data: $(currentForm).serialize(),
			    		context: document.body,
			    		success: function (s) {
			    			if (s.success) {
			    				location.reload();
			    			}
			    		},
			    		error: function (xhr, status, error) {
			    			alert("Status: " + status + ", Error: " + error + ", XHR: " + xhr.readyState);
			    		},
			    		statusCode: {
			    			404: function () {
			    				alert("Page not found");
			    			}
			    		}
			    	});
				}
			});
			return false;
		});
	})

</script>
}